package com.xiaoxi.bms.common.config;

import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.transaction.annotation.EnableTransactionManagement;

/**
 * @ClassName MyPlusConfig
 * @Description MybatisPlus 一些好用的插件
 * @Author xiaoxi
 * @Date 2022/4/24 15:40
 * @Version 1.0
 */
@Configuration
@EnableTransactionManagement
@MapperScan("com.xiaoxi.bms.mapper")
public class MybatisPlusConfig {


    /**
     * 乐观锁插件 防止丢失更新。
     * 应用场景： 多人同时更新一份数据，最后一个人更新的时候，需要验证版本是否和自己的版本一致
     * newVersion = oldVersion + 1  会自动回写
     *
     * @return
     */
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor() {
        return new OptimisticLockerInterceptor();
    }


    /**
     * 分页插件
     *
     * @return
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }


}
